Managing Complexity: Middleware Explained

نویسندگان

  • Andrew T. Campbell
  • Geoff Coulson
  • Michael E. Kounavis
چکیده

A sk a network designer what middleware is, and he’ll characterize it as part of the application. Ask an application designer what it is, and she’ll say it’s part of the OS.Which one is it? Traditionally, most definitions seeking to characterize middleware suggest that it is the software that facilitates remote database access and systems transactions. More recently, the term has come to be associated—somewhat limitingly—with distributed platforms like the Open Software Foundation’s Distributed Computing Environment (DCE) and the Object Management Group’s Common Object Request Broker Architecture (CORBA). And some have loosely applied it to systems as diverse as workflow support environments and even to the Web itself. We believe the essential role of middleware is to manage the complexity and heterogeneity of distributed infrastructures and thereby provide a simpler programming environment for distributed-application developers. It is therefore most useful to define middleware as any software layer that is placed above the distributed system’s infrastructure—the network OS and APIs—and below the application layer. In the distributed-computing model,your enterprise moves applications and data to where they can operate most efficiently: to desktop workstations and to LAN, Web, or remote servers. But dealing with the different protocols and interfaces in a distributed environment can be a nightmare. For instance, to provide basic communication services, programming languages support sockets, which are end points in two-way communication links between two programs running on a network. Sockets require client and server to engage in application-level protocols to encode and decode messages. Designing such protocols is cumbersome and can be prone to error. Middleware is basically an alternative to sockets; it abstracts the communication interface to the level of method invocations. Instead of working directly with sockets, you call a method— rather, you have the illusion of calling a method—on a local object.The arguments of the call are in fact packaged up by your middleware and shipped off to the call’s remote target. In this case, as in others, middleware provides the isolating layer of software that shields you from the complexities of a heterogeneous environment.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Access control in ultra-large-scale systems using a data-centric middleware

  The primary characteristic of an Ultra-Large-Scale (ULS) system is ultra-large size on any related dimension. A ULS system is generally considered as a system-of-systems with heterogeneous nodes and autonomous domains. As the size of a system-of-systems grows, and interoperability demand between sub-systems is increased, achieving more scalable and dynamic access control system becomes an im...

متن کامل

Managing Complexity In Middleware

Middleware is becoming increasingly complex, and this complexity is at odds with one of middleware’s key goals – to make it easier to build distributed systems. A new emphasis on simplicity, componentization and applicationmiddleware independence is required to redress the situation. Aspect-oriented software development techniques hold great promise in helping to meet these challenges, though t...

متن کامل

Enhancing middleware support for architecture-based development through compositional weaving of styles

Architecture-based software development has been shown as an effective approach for managing the implementation complexity of large-scale software systems. Architecture-based development is often achieved with the help of a middleware, which provides implementation-level counterparts for the architectural modeling constructs. Such a middleware automatically ensures that implemented system accur...

متن کامل

Autonomic Adaptation of Publish/Subscribe Middleware in Dynamic Environments

Quality-of-service (QoS)-enabled publish/subscribe (pub/sub) middleware provides powerful support for scalable data dissemination. It is hard, however, to maintain key QoS properties (such as reliability and latency) in dynamic environments for distributed real-time and embedded (DRE) systems (such as disaster relief operations or power grids). Managing QoS manually is often not feasible in dyn...

متن کامل

Maintaining QoS for Publish/Subscribe Middleware via Autonomic Adaptation

Quality of Service (QoS)-enabled Publish/Subscribe (pub/sub) middleware provides powerful support for data dissemination. It is hard, however, to maintain specified QoS properties (such as reliability and latency) in dynamic environments (such as disaster relief operations or power grids). For example, managing QoS manually is not feasible in dynamic systems due to slow human response times and...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1999